home *** CD-ROM | disk | FTP | other *** search
/ Aminet 23 / Aminet 23 (1998)(GTI - Schatztruhe)[!][Feb 1998].iso / Aminet / disk / misc / TransADF.lha / Source / errors.c < prev    next >
C/C++ Source or Header  |  1997-11-30  |  4KB  |  184 lines

  1. #include <exec/types.h>
  2. #include <exec/errors.h>
  3. #include <devices/trackdisk.h>
  4. #include <dos/dos.h>
  5. #include <clib/dos_protos.h>
  6.  
  7. #include "errors.h"
  8. #include "main.h"
  9. #include "zlib.h"
  10.  
  11.  
  12. /*
  13. ** Output a DOS error value, as returned by IoErr(), as a text string
  14. ** to StdErr.
  15. */
  16. void reportDOSError (LONG DOSError)
  17. {
  18.   char ErrorString[80];
  19.   
  20.   if (Fault (DOSError, "DOS Error", ErrorString, 79))
  21.     FPrintf (StdErr, "%s.\n", ErrorString);
  22.   else
  23.     FPrintf (StdErr, "DOS Error: %ld.\n", DOSError);
  24. }
  25.  
  26.  
  27. /* 
  28. ** Output an IO Error, as returned by OpenDevice()/DoIO(), as a text 
  29. ** string to stderr.
  30. */
  31. void reportIOError (BYTE IOError)
  32. {
  33.   STRPTR ErrStr;
  34.   
  35.   switch (IOError) {
  36.   case IOERR_OPENFAIL:
  37.     ErrStr = "Open Failure";
  38.     break;
  39.   case IOERR_ABORTED:
  40.     ErrStr = "Aborted";
  41.     break;
  42.   case IOERR_NOCMD:
  43.     ErrStr = "No Command";
  44.     break;
  45.   case IOERR_BADLENGTH:
  46.     ErrStr = "Bad Length";
  47.     break;
  48.   case IOERR_BADADDRESS:
  49.     ErrStr = "Bad Address";
  50.     break;
  51.   case IOERR_UNITBUSY:
  52.     ErrStr = "Unit Busy";
  53.     break;
  54.   case IOERR_SELFTEST:
  55.     ErrStr = "Self Test Failure";
  56.     break;
  57.   default:
  58.     ErrStr = NULL;
  59.   }
  60.   
  61.   FPuts (StdErr, "IO Error: ");
  62.   if (ErrStr)
  63.     FPuts (StdErr, ErrStr);
  64.   else
  65.     FPrintf (StdErr, "Unknown (%ld)", IOError);
  66.   FPuts (StdErr, ".\n");
  67. }
  68.  
  69.  
  70. /*
  71. ** Output a TrackDisk IO Error, as returned by OpenDevice()/DoIO(),
  72. ** as a text string to stderr.
  73. */
  74. void reportTDError (BYTE TDError)
  75. {
  76.   STRPTR ErrStr;
  77.  
  78.   /* Check to see if this is a `standard' error */
  79.   if (TDError < 0)
  80.   {
  81.     reportIOError (TDError);
  82.     return;
  83.   }
  84.   
  85.   switch (TDError) {
  86.   case TDERR_NotSpecified:
  87.     ErrStr = "Not Specified";
  88.     break;
  89.   case TDERR_NoSecHdr:
  90.     ErrStr = "No Sector Header";
  91.     break;
  92.   case TDERR_BadSecPreamble:
  93.     ErrStr = "Bad Sector Preamble";
  94.     break;
  95.   case TDERR_BadSecID:
  96.     ErrStr = "Bad Sector ID";
  97.     break;
  98.   case TDERR_BadHdrSum:
  99.     ErrStr = "Bad Header Checksum";
  100.     break;
  101.   case TDERR_BadSecSum:
  102.     ErrStr = "Bad Sector Checksum";
  103.     break;
  104.   case TDERR_TooFewSecs:
  105.     ErrStr = "Too Few Sectors";
  106.     break;
  107.   case TDERR_BadSecHdr:
  108.     ErrStr = "Bad Sector Header";
  109.     break;
  110.   case TDERR_WriteProt:
  111.     ErrStr = "Write Protected";
  112.     break;
  113.   case TDERR_DiskChanged:
  114.     ErrStr = "Disk Changed";
  115.     break;
  116.   case TDERR_SeekError:
  117.     ErrStr = "Seek Error";
  118.     break;
  119.   case TDERR_NoMem:
  120.     ErrStr = "No Memory";
  121.     break;
  122.   case TDERR_BadUnitNum:
  123.     ErrStr = "Bad Unit Number";
  124.     break;
  125.   case TDERR_BadDriveType:
  126.     ErrStr = "Bad Drive Type";
  127.     break;
  128.   case TDERR_DriveInUse:
  129.     ErrStr = "Drive In Use";
  130.     break;
  131.   case TDERR_PostReset:
  132.     ErrStr = "Post Reset";
  133.     break;
  134.   default:
  135.     ErrStr = NULL;
  136.   }
  137.   
  138.   FPuts (StdErr, "TrackDisk Error: ");
  139.   if (ErrStr)
  140.     FPuts (StdErr, ErrStr);
  141.   else
  142.     FPrintf (StdErr, "Unknown (%ld)", TDError);
  143.   FPuts (StdErr, ".\n");
  144. }
  145.  
  146.  
  147. /*
  148. ** Output a Zlib error as a test string.
  149. */
  150. void reportZLibError (LONG ZLibError)
  151. {
  152.   STRPTR ErrStr;
  153.   
  154.   switch (ZLibError) {
  155.   case Z_ERRNO:
  156.     ErrStr = "Error Number";
  157.     break;
  158.   case Z_STREAM_ERROR:
  159.     ErrStr = "Stream Error";
  160.     break;
  161.   case Z_DATA_ERROR:
  162.     ErrStr = "Data Error";
  163.     break;
  164.   case Z_MEM_ERROR:
  165.     ErrStr = "Memory Error";
  166.     break;
  167.   case Z_BUF_ERROR:
  168.     ErrStr = "Buffer Error";
  169.     break;
  170.   case Z_VERSION_ERROR:
  171.     ErrStr = "Version Error";
  172.     break;  
  173.   default:
  174.     ErrStr = NULL;
  175.   }
  176.  
  177.   FPuts (StdErr, "ZLib Error: ");
  178.   if (ErrStr)
  179.     FPuts (StdErr, ErrStr);
  180.   else
  181.     FPrintf (StdErr, "Unknown (%ld)", ZLibError);
  182.   FPuts (StdErr, ".\n");
  183. }
  184.